Most computer programs, such as an application program, allow a user to specify user preferences that affect how the computer program interacts with the user. For example, a word processing application program typically allows the user to specify the default font, default colors, and default toolbar buttons. User preference information is influenced by personal taste, as well as the type of tasks typically performed by the user. For example, a user whose personal taste is more traditional probably prefers a different default font than a user whose personal taste is more contemporary. Likewise, a user whose primary word processing task is creating documents that include mostly single column text, probably prefers a different default toolbar than a user whose primary word processing task is creating documents that include multiple columns, tables or charts.
In the past, user preference information was maintained on a per system basis. Maintaining user preference information on a per system basis assumes that only one user operates the computer system or that all users that operate the computer system can share a single set of user preference information. However, if a number of different users share a single computer system and the users require different user preference information, then there is a need for maintaining a set of user preference information for each user.
If there are multiple users sharing a single computer system, then only one of the users installs the application program and runs setup. In some organizations, a system administrator installs the application program on all of the computer systems in the organization so that none of the actual users of the application program run setup. In both of these situations, a user that does not run setup does not have the same user preference information as the user (or system administrator) that ran setup. Thus, there is a need to create user preference information for all users, not just the user that installed the application program.
In addition to installing the application program, the system administrator can customize the default user preference information to tailor the default user preference information to the needs of the organization. If the system administrator customizes the default user preference information, then all of the users of the system should have access to the customized user preference information and the customized user preference information should be integrated with the preference information created by the user.
There may be times when a user needs to uninstall or reinstall an application program. This may happen if the user encounters a problem with the application program or if a maintenance update for the application program is released. If the user uninstalls the application program, then the user preference information for that application program may be removed. Similarly, if the user reinstalls the application program, then the user preference information for that application program may be overwritten with the default preference information provided with the application program. Therefore, there is a need for a method for maintaining user preference information even if the application program is uninstalled or reinstalled.
User preference information is typically stored on the computer system. For example, computer systems that use the "WINDOWS" operating system marketed by Microsoft Corporation of Redmond, Wash. store user preference information in a registration database (the "registry") or in an application data folder. The registry is structured as a hierarchically structured tree and contains keys and registry values. The registry includes the HKEY_LOCAL_MACHINE key, the HKEY_CURRENT_USER key, and the HKEY_USERS key. The HKEY_LOCAL_MACHINE key contains information about the configuration of the computer system. The HKEY_USERS key contains subkeys for every user that has ever logged on to the system and saved user preference information, as well as a default subkey. The HKEY_CURRENT_USER key points to the appropriate subkey of the HKEY_USERS key for the current user. Typically, an application data folder is created for each user that has logged onto the computer system.
Although there have been prior attempts to solve the problem of creating and maintaining user data for multiple users, none of the prior attempts have been completely satisfactory. One attempt to solve the problem was included in the "OFFICE 97" suite of application programs marketed by Microsoft Corporation. This attempt stored default user preference information in the registry under the HKEY_LOCAL_MACHINE key. When one of the application programs of the "OFFICE 97" application suite was initiated, a determination was made as to whether there was user preference information in the registry. If the determination was that there was no user data in the registry, then the default user preference information was copied from the HKEY_LOCAL_MACHINE key. However, if the determination was that there was user preference information in the registry, then the default user preference information was not copied. One drawback of this attempt is that it only handles user preference information that is stored in the registry. It does not handle user preference information that is stored in a user preference file. Another drawback is that it does not offer a system administrator an easy way to customize default user preference information.
Accordingly, there is a need in the art for a method for creating and maintaining user preference information for multiple users that accommodates user preference information stored in the registry or in a file. In addition, the method should provide a system administrator an easy way to customize default user preference information. The method should also maintain user preference information even though the application program is uninstalled or reinstalled.